package com.ustcinfo.study.scala.r5.wangjie

import org.apache.spark.{SparkConf, SparkContext}

/**
  * @ author WJ
  * @ date 2018/08/03 20:45
  */
object WjWordCount {
  def main(args: Array[String]): Unit = {
    val sparkConf = new SparkConf().setMaster("local").setAppName("wjTest")
    val sc = new SparkContext(sparkConf)
    val txtRdd = sc.textFile("src/main/resources/sampleData/programmingGuide")
    txtRdd
      .filter( x => x.trim().length >0)   //过滤掉空行
      .map( x => x.split(" "))       //每行根据空格分割成一个行数组
      .flatMap( x => x)              //将众多数组展开成一个数组
      .map( x => ( x,1 ))            // 将每个元素count 记为1
      .reduceByKey( _ + _)           //相同的计数
      .map( x => (x._2 , x._1))      //将key 和 value 互调
      .sortByKey(false)            //根据key 升序 排序
      .take(10)                     // 只取十个数
      .foreach(println)             //遍历打印
  }
}
